package com.jianhua.backend.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * <p>
 * 存储用户订单的核心信息
 * </p>
 *
 * @author author
 * @since 2025-07-02
 */
@Getter
@Setter
@ToString
@TableName("orders")
public class Orders implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 订单唯一标识
     */
    @TableId(value = "order_id", type = IdType.AUTO)
    private Integer orderId;

    /**
     * 订单编号（展示给用户）
     */
    @TableField("order_number")
    private String orderNumber;

    /**
     * 下单用户ID
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 配送场馆ID
     */
    @TableField("venue_id")
    private Integer venueId;

    /**
     * 联系人姓名
     */
    @TableField("contact_name")
    private String contactName;

    /**
     * 联系人电话
     */
    @TableField("contact_phone")
    private String contactPhone;

    /**
     * 具体配送位置
     */
    @TableField("delivery_location")
    private String deliveryLocation;

    /**
     * 配送时间窗口（如11:30-12:00）
     */
    @TableField("delivery_time_window")
    private String deliveryTimeWindow;

    /**
     * 订单总金额
     */
    @TableField("total_amount")
    private BigDecimal totalAmount;

    /**
     * 订单状态（待接单/备餐中/出餐完成/配送中/已完成等）
     */
    @TableField("status")
    private String status;

    /**
     * 支付方式
     */
    @TableField("payment_method")
    private String paymentMethod;

    /**
     * 支付状态
     */
    @TableField("payment_status")
    private String paymentStatus;

    /**
     * 订单创建时间
     */
    @TableField("created_at")
    private Date createdAt;

    /**
     * 订单更新时间
     */
    @TableField("updated_at")
    private Date updatedAt;

}
